推荐一个云服务速度测试工具

废话不多说,先上地址。
http://www.pingms.com/

在v2上看到这个工具,想起了我(小白)在选vps的时候,不知道选择哪个地区的机房,只能按照网上说的选择物理线路就近的日本和香港,然而实际请求速度并不理想。
这个工具对常用云服务商(目前4个:Vultr Linode DigitalOcean VirMach)的各地机房的ping速度进行了一个排序,帮助选择困难症们选择较为合适的机房。
另外,工具的ui做的我还蛮喜欢的。
测量的准确性有待考量

原帖地址

图片

整理一下最近几天面试中的php面试题(附答案)

最近几天一直在南京找工作,面试加起来总共有8家之多了,目前还没有收到过offer。
之前我一直作为一个拧螺丝的人,我认为只要会拧螺丝、拧好螺丝就好了,面试了几家之后,我发现是我肤浅了(人生中第一次找工作与面试)。所有的公司都希望能面试到一个能造航母的人,但是招过来之后哪怕只需要他拧拧螺丝。
废话不多说,我凭记忆来列一下就我面试面到的问题。

基础篇

  • requrie 和 include的区别

    require() :如果文件不存在,会报出一个fatal error.脚本停止执行 include() : 如果文件不存在,会给出一个 warning,但脚本会继续执行 这里特别要注意的是: 使用include()文件不存在时,脚本继续执行,这种情况只出现在PHP 4.3.5之前,这一点,往往被人忽视。 推荐使用require_once()和include_once(),可以检测文件是否有重复包含。
    require()函数工作方式与XSSI相类似;不管在程序的哪个部分使用了这个函数,只有程序一开始运行,头文件的内容就被作为程序本身的一部分来处 理。因此,如果您在一个条件判定语句中使用了require()函数,那么即使这个条件即使不为真,头文件也会被包含进来。 而include()函数只是在执行到这一条语句时才会把头文件内容包含进来。如果程序没运行到这里,那PHP是不会管它的。这就意味着,您在条件判定部分使用include时,它会完全按照您希望的那样工作。
    参考资料

  • php数组有哪几种类型
    • 索引数组 带有数字索引的数组
    • 关联数组 带有指定键的数组
    • 多维数组 包含一个或者多个数组的数组
      PHP 数组可以同时含有 integer 和 string 类型的键名,因为 PHP 实际并不区分索引数组和关联数组。
      参考资料

OOP篇

  • 常用的几种设计模式

策略模式、工厂模式、单例模式、注册模式、适配器模式、观察者模式
参考资料及拓展

MySQL篇

  • 索引的类型
    • 逻辑角度: 主键索引、普通索引、组合索引、唯一索引和不唯一索引、空间索引
    • 数据结构角度: B+tree索引、hash索引、FullText索引、R-tree索引
    • 物理存储角度: 聚集索引、非聚集索引
      参考资料
  • 索引的优缺点

    优点:加快查询速度;加快表之间的链接;
    缺点: 索引要占用磁盘空间;对于需要写入数据的操作,索引会降低它们的速度;
    参考资料

  • 数据库的引擎
    • HEAP: 允许只驻留在内存里的临时表格;优点:速度快;缺点:数据不稳定,用完即丢;
    • MyISAM: 优点 查询速度快,占用内存和硬盘资源少;缺点 不支持事务;其他 可以使用表锁,不支持行锁;
    • InnoDB: 优点 支持事务和外键;缺点 比其他的慢; 其他 支持行锁;
      参考资料
  • MySQL 5.7版本新特性

    速度上比MySQL 5.6快3倍,提高了可用性,可管理性和安全性。

    • 性能和可扩展性:改进 InnoDB 的可扩展性和临时表的性能,从而实现更快的网络和大数据加载等操作。
    • JSON支持:使用 MySQL 的 JSON 功能,你可以结合 NoSQL 的灵活和关系数据库的强大。
    • 改进复制 以提高可用性的性能。包括多源复制,多从线程增强,在线 GTIDs,和增强的半同步复制。
    • 性能模式 提供更好的视角。我们增加了许多新的监控功能,以减少空间和过载,使用新的 SYS 模式显著提高易用性。
    • 安全: 我们贯彻“安全第一”的要求,许多 MySQL 5.7 新功能帮助用户保证他们数据库的安全。
    • 优化: 我们重写了大部分解析器,优化器和成本模型。这提高了可维护性,可扩展性和性能。
    • GIS: MySQL 5.7 全新的功能,包括 InnoDB 空间索引,使用 Boost.Geometry,同时提高完整性和标准符合性。
      摘自
      参考资料

redis篇

  • redis支持的数据类型

    string、hash、list、set、sortedSet
    参考资料

  • redis的持久化方案

    RDB、AOF、RDB+AOF、关闭持久化
    参考资料

关于opcache的小知识1

在调试项目的时候,opcache是个很磨人的小妖精,所以想停用它。
自己开发的时候只有一台服务器,只装了一个php(测试环境和线上环境一体),所以想在代码中实现opcache的禁用。

if (in_array($_SERVER['REMOTE_ADDR'], ['1.2.3.4'])) {
    ini_set('opcache.enable', 0);
}

但是没有用!!!

查阅了一篇关于opcache最好配置的文章,决定在 opcache.revalidate_freq 上面动手脚。

# php -i | grep opcache.revalidate_freq
opcache.revalidate_freq => 60 => 60

revalidate_freq 的默认值是60,我希望修改成5(5s Debug一次应该不算快吧)。
在php.ini中进行修改,没有生效。注意到一个细节,[opcache]项目下面所有的配置都是被注释了的,但是opcache依然是启用状态。

# php -i | grep opcache
······
/usr/local/php/etc/php.d/ext-opcache.ini,
······

查到opcache的配置文件位置在 /usr/local/php/etc/php.d/ext-opcache.ini

进入修改,reload php-fmp, 生效。

.edu邮箱福利

#EDU邮箱的福利

  1. Dreamspark是微软鼓励学生积极创造的项目,里面也多是面向开发者的软件像是VS,SqlServer… 使用edu邮箱注册账号这些东西你可以免费获得。正版的永远比用注册机玩坏的好的多.
  2. Prezi是一款极限pk微软ppt和苹果keynote的东西。他用edu邮箱注册将获得30天的试用,一般crackclock就是趁着试用期完成的。
  3. office365
  4. google app for education
  5. JetBrains的免费Student License
  6. GitHub学生开发者大礼包GitHub Student Developer Pack